home *** CD-ROM | disk | FTP | other *** search
/ PD Collection CD 1 / PD Collection CD 1.iso / textual / tex / files / !tex / mfinputs / romms / mf
Encoding:
Text File  |  1988-02-26  |  9.5 KB  |  235 lines

  1. % This is ROMMS.MF in text format, as of Mar 31, 1986.
  2. % This file contains special characters of ``math italic'' fonts
  3. % that actually are not supposed to be slanted.
  4. % Codes \0050--\0057, \0072--\0077, and \0133--\0137 are generated.
  5.  
  6. % The italic corrections are zero in all of these characters.
  7.  
  8. cmchar "Leftward top half arrow";
  9. compute_spread(.45x_height#,.55x_height#);
  10. beginchar(oct"050",18u#,v_center(spread#+rule_thickness#));
  11. adjust_fit(0,0); pickup crisp.nib;
  12. pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
  13. y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
  14. y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
  15. pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
  16. numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
  17. t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
  18. filldraw z0--(x0,y2l)---z1l..z1r---z2r
  19.  ..subpath (t,0) of\\(z3r..{2(x0-x3),y0-y3}z5r)
  20.  --z3l..{2(x0-x3),y0-y3}cycle;  % arrowhead and stem
  21. penlabels(0,1,2,3,4,5,6); endchar;
  22.  
  23. cmchar "Leftward bottom half arrow";
  24. compute_spread(.45x_height#,.55x_height#);
  25. beginchar(oct"051",18u#,v_center(spread#+rule_thickness#));
  26. adjust_fit(0,0); pickup crisp.nib;
  27. pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
  28. y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
  29. y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
  30. pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
  31. numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
  32. t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
  33. filldraw z0{2(x4-x0),y4-y0}..z4l
  34.  --subpath (0,t) of\\(z4r..{2(x0-x4),y0-y4}z6r)
  35.  ..z2l---z1l..z1r---(x0,y2r)--cycle;  % arrowhead and stem
  36. penlabels(0,1,2,3,4,5,6); endchar;
  37.  
  38. cmchar "Rightward top half arrow";
  39. compute_spread(.45x_height#,.55x_height#);
  40. beginchar(oct"052",18u#,v_center(spread#+rule_thickness#));
  41. adjust_fit(0,0); pickup crisp.nib;
  42. pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
  43. y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
  44. y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
  45. pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
  46. numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
  47. t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
  48. filldraw z0--(x0,y2l)---z1l..z1r---z2r
  49.  ..subpath (t,0) of\\(z3l..{2(x0-x3),y0-y3}z5r)
  50.  --z3r..{2(x0-x3),y0-y3}cycle;  % arrowhead and stem
  51. penlabels(0,1,2,3,4,5,6); endchar;
  52.  
  53. cmchar "Rightward bottom half arrow";
  54. compute_spread(.45x_height#,.55x_height#);
  55. beginchar(oct"053",18u#,v_center(spread#+rule_thickness#));
  56. adjust_fit(0,0); pickup crisp.nib;
  57. pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
  58. y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
  59. y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
  60. pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
  61. numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
  62. t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
  63. filldraw z0{2(x4-x0),y4-y0}..z4r
  64.  --subpath (0,t) of\\(z4l..{2(x0-x4),y0-y4}z6r)
  65.  ..z2l---z1l..z1r---(x0,y2r)--cycle;  % arrowhead and stem
  66. penlabels(0,1,2,3,4,5,6); endchar;
  67.  
  68. cmchar "Left hook";
  69. compute_spread(.45x_height#,.55x_height#);
  70. beginchar(oct"054",5u#,v_center(2spread#+rule_thickness#));
  71. adjust_fit(0,0); pickup rule.nib; autorounded;
  72. lft x2=hround u-eps; x1=x3=w-x2;
  73. y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
  74. draw z1{left}...z2{down}...z3{right};  % hook
  75. labels(1,2,3); endchar;
  76.  
  77. cmchar "Right hook";
  78. compute_spread(.45x_height#,.55x_height#);
  79. beginchar(oct"055",5u#,v_center(2spread#+rule_thickness#));
  80. adjust_fit(0,0); pickup rule.nib; autorounded;
  81. rt x2=hround(w-u)+eps; x1=x3=w-x2;
  82. y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
  83. draw z1{right}...z2{down}...z3{left};  % hook
  84. labels(1,2,3); endchar;
  85.  
  86. cmchar "Triangle pointing right";
  87. beginchar(oct"056",9u#,v_center(x_height#));
  88. adjust_fit(0,0); pickup rule.nib;
  89. numeric a,b; a=sqrt(3.14159\\ /sqrt3); % triangle area $=$ circle area
  90. b=.5w-(rt hround u); .5[x1',x2']=.5w; x2'-x1'=a*b*sqrt3;
  91. x1=x3=good.x x1'; x2=good.x x2';
  92. y2=.5[y1,y3]=math_axis; y1=good.y(y2+a*b);
  93. draw z1--z2--z3--cycle;  % triangle
  94. labels(1,2,3); endchar;
  95.  
  96. cmchar "Triangle pointing left";
  97. beginchar(oct"057",9u#,v_center(x_height#));
  98. adjust_fit(0,0); pickup rule.nib;
  99. numeric a,b; a=sqrt(3.14159\\ /sqrt3); % triangle area $=$ circle area
  100. b=.5w-(rt hround u); .5[x1',x2']=.5w; x1'-x2'=a*b*sqrt3;
  101. x1=x3=good.x x1'; x2=good.x x2';
  102. y2=.5[y1,y3]=math_axis; y1=good.y(y2+a*b);
  103. draw z1--z2--z3--cycle;  % triangle
  104. labels(1,2,3); endchar;
  105.  
  106. cmchar "Period";
  107. numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
  108. define_whole_blacker_pixels(dot_diam);
  109. beginchar(oct"072",5u#,dot_diam#,0);  % non-ASCII position
  110. adjust_fit(0,0); pickup fine.nib;
  111. pos1(dot_diam,0); pos2(dot_diam,90);
  112. lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2);  % dot
  113. penlabels(1,2); endchar;
  114.  
  115. cmchar "Comma";
  116. numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
  117. define_whole_blacker_pixels(dot_diam);
  118. beginchar(oct"073",5u#,dot_diam#,comma_depth#);  % non-ASCII position
  119. adjust_fit(0,0);
  120. x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
  121. comma(1,a,dot_diam,.2u,comma_depth);  % dot and tail
  122. penlabels(1); endchar;
  123.  
  124. cmchar "Less than sign";
  125. compute_spread(5/4x_height#,3/2x_height#);
  126. beginchar("<",14u#,v_center(spread#+rule_thickness#));
  127. italcorr h#*slant-u#;
  128. adjust_fit(0,0); pickup rule.nib;
  129. lft x2=hround 1.5u-eps; x1=x3=w-x2;
  130. y1-y3=spread; y2=.5[y1,y3]=math_axis;
  131. draw z1--z2--z3;  % diagonals
  132. labels(1,2,3); endchar;
  133.  
  134. cmchar "Virgule (slash)";
  135. beginchar(oct"075",9u#,body_height#,paren_depth#);  % non-ASCII position
  136. italcorr body_height#*slant-.5u#;
  137. adjust_fit(0,0); pickup rule.nib;
  138. rt x1=hround(w-u)+eps; top y1=h+eps;
  139. lft x2=hround u-eps; bot y2=-d-eps;
  140. draw z1--z2;  % diagonal
  141. penlabels(1,2); endchar;
  142.  
  143. cmchar "Greater than sign";
  144. compute_spread(5/4x_height#,3/2x_height#);
  145. beginchar(">",14u#,v_center(spread#+rule_thickness#));
  146. italcorr math_axis#*slant-u#;
  147. adjust_fit(0,0); pickup rule.nib;
  148. rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
  149. y1-y3=spread; y2=.5[y1,y3]=math_axis;
  150. draw z1--z2--z3;  % diagonals
  151. labels(1,2,3); endchar;
  152.  
  153. cmchar "Five-pointed star";
  154. beginchar(oct"077",9u#,v_center(x_height#));
  155. adjust_fit(0,0); pickup tiny.nib;
  156. numeric theta; theta=360/5; % degrees between points
  157. pos0(curve,0); pos1(rule_thickness,90); x0=x1=good.x .5w;
  158. top y1r=vround(math_axis+.5x_height+.5rule_thickness);
  159. ypart(.5[z1,z0+(z1-z2) rotated 2theta])=math_axis;
  160. pos2(curve,theta); pos3(rule_thickness,90+theta);
  161. z2=z0; z3-z0=(z1-z0) rotated theta;
  162. z4=whatever[z0l,z1r]=whatever[z2r,z3r];
  163. filldraw for n=0 upto 4:
  164.  z0+(z1r-z0)rotated(n*theta)--z0+(z4-z0)rotated(n*theta)--endfor
  165.  cycle;  % star
  166. penlabels(0,1,2,3,4); endchar;
  167.  
  168. cmchar "Musical flat sign";
  169. beginchar(oct"133",7u#,body_height#,0);
  170. adjust_fit(0,0); pickup crisp.nib;
  171. numeric light_hair; light_hair=if hefty: vair else: hair fi;
  172. pos1(light_hair,0); pos2(light_hair,180); pos3(light_hair,0); x1=x2=x3;
  173. pos4(.25[light_hair,curve],60); pos5(curve,0);
  174. lft x1l=hround u; x4=.5w; rt x5r=hround(w-u);
  175. top y1=h; bot y3=-o; top y4=x_height+o;
  176. y2=y4-.2x_height; y5=3/4x_height;
  177. filldraw stroke z1e--z3e;  % stem
  178. filldraw stroke z2e{up}...z4e{right}...z5e{down}
  179.  ...{2(x3-x5e),y3-y5e}z3e;  % bowl
  180. penlabels(1,2,3,4,5); endchar;
  181.  
  182. cmchar "Musical natural sign";
  183. beginchar(oct"134",7u#,asc_height#,desc_depth#);
  184. adjust_fit(0,0); pickup crisp.nib;
  185. numeric light_hair; light_hair=if hefty: vair else: hair fi;
  186. pos1(light_hair,0); pos2(curve,90); pos3(curve,90);
  187. pos4(curve,90); pos5(curve,90); pos6(light_hair,0);
  188. rt x1r=hround 15/8u; x2=x4=x1l; x3=x5=x6r=w-x2;
  189. y1=h+o; top y2r=0; .5[y2,y3]=0; y4-y2=y5-y3=x_height; bot y6=-d-o;
  190. x2'=x1r; z2'=whatever[z2r,z3r]; x5'=x6l; z5'=whatever[z4l,z5l];
  191. (x1r,y)=z1l+whatever*(z5-z4); y6l:=y6l-(y-y1r); y1r:=y;
  192. filldraw z1l--z2l--z3l--z3r--z2'--z1r--cycle;  % left stem and lower bar
  193. filldraw z6r--z5r--z4r--z4l--z5'--z6l--cycle;  % right stem and upper bar
  194. penlabels(1,2,3,4,5,6); endchar;
  195.  
  196. cmchar "Musical sharp sign";
  197. beginchar(oct"135",7u#,asc_height#,desc_depth#);
  198. adjust_fit(0,0); pickup crisp.nib;
  199. numeric light_hair; light_hair=if hefty: vair else: hair fi;
  200. pos1(curve,90); pos2(curve,90); pos3(curve,90); pos4(curve,90);
  201. lft x1=lft x3=hround u; x2=x4=w-x1;
  202. top y3r=0; .5[y3,y4]=0; y1-y3=y2-y4=x_height;
  203. filldraw stroke z1e--z2e; filldraw stroke z3e--z4e;  % bars
  204. numeric theta,hstem; theta=angle(z2-z1);
  205. (hstem-crisp)*cosd theta=light_hair-crisp;
  206. pos5(hstem,theta); pos6(hstem,theta); pos7(hstem,theta); pos8(hstem,theta);
  207. lft x5l=lft x6l=hround(2u-.5light_hair); x7=x8=w-x6;
  208. top y7l=h+o; bot y6r=-d-o; z7-z5=z8-z6=(whatever,0) rotated theta;
  209. filldraw stroke z5e--z6e; filldraw stroke z7e--z8e;  % stems
  210. penlabels(1,2,3,4,5,6,7,8); endchar;
  211.  
  212. cmchar "Slur below (smile)";
  213. beginchar(oct"136",18u#,v_center(.5x_height#));
  214. adjust_fit(0,0); pickup fine.nib;
  215. numeric light_stem; light_stem=Vround .5[vair,stem];
  216. x1-.5hair=hround u; y1+.5hair=vround(h+.5hair); x3=w-x1; y3=y1;
  217. pos2(light_stem,90); x2=.5w; y2l=good.y -d;
  218. numeric theta; theta=angle((z2-z1)yscaled 3);
  219. pos1(hair,90+theta); pos3(hair,90-theta);
  220. filldraw z1l{dir theta}...z2l...{dir-theta}z3l
  221.  ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle;  % arc
  222. penlabels(1,2,3); endchar;
  223.  
  224. cmchar "Slur above (frown)";
  225. beginchar(oct"137",18u#,v_center(.5x_height#));
  226. adjust_fit(0,0); pickup fine.nib;
  227. numeric light_stem; light_stem=Vround .5[vair,stem];
  228. x1-.5hair=hround u; y1-.5hair=vround(-d-.5hair); x3=w-x1; y3=y1;
  229. pos2(light_stem,90); x2=.5w; y2=good.y h;
  230. numeric theta; theta=angle((z2-z1)yscaled 3);
  231. pos1(hair,90+theta); pos3(hair,90-theta);
  232. filldraw z1l{dir theta}...z2l...{dir-theta}z3l
  233.  ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle;  % arc
  234. penlabels(1,2,3); endchar;
  235.